import time

class Logger:
    def __init__(self) -> None:
        self.f = open(f"log/{time.time()}.log", "a")

    def log(self, ip, require, status, size):
        self.f.write(
            # 客户端IP
            str(ip)
            + '--['
            # 访问时间
            + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
            + ']'
            + ' "'
            # 请求方式
            + require.method
            + '/'
            # 请求文件的位置
            + require.target
            # HTTP版本
            + ' HTTP/'
            + require.version
            +'" '
            # HTTP状态码
            + str(status)
            + ' '
            # 请求大小
            + str(size)
            + ' "'
            # 引用点击的网页
            + (
                require.headers["Referer"]
                if require.headers.__contains__("Referer")
                else ""
            )
            + '" "'
            # 浏览器标志
            + (
                require.headers["User-Agent"]
                if require.headers.__contains__("User-Agent")
                else ""
            )
            + '"\n\n'
        )
        self.f.flush()


# 线程安全的单例
logger = Logger()
